A user interface is a system by which people (users) interact with an electronic device, such as a computer. In general, a user interface allows users to input information to manipulate an electronic device. A user interface also allows an electronic device to output information as to the effects of the manipulation. In computing, a graphical user interface (GUI) is a type of user interface that allows users to interact with electronic devices with images rather than text commands. A GUI represents the information and actions available to a user through graphical icons and visual indicators such as secondary notation, as opposed to text-based interfaces, typed command labels or text navigation. The actions are usually performed through direct manipulation of the graphical elements.
A form is a type of GUI view that is specifically designed to allow a user to enter data in a structured manner for processing by an electronic device. A form provides an input template comprising various combinations of checkboxes, radio buttons, text fields, and other GUI elements designed to query and display data. This type of form is sometimes referred to as an “electronic form” to distinguish it from its physical counterpart, such as a paper document with blank spaces for insertion of required or requested information.
Conventional electronic forms typically present a list or column of valid values for certain fields so that the user can be prompted to select a value. These values may either come from a static data source or a dynamic data source. A static data source, such as a list, may be encoded in an application program as source code during development prior to compilation as an executable file. Use of a static data source for a form makes changing values of the static list difficult, and in some cases, technically infeasible. Dynamic data sources of values are typically different application programs, such as databases or spreadsheets that can be edited by a user or form designer. For instance, a spreadsheet may have a series of cells, with each cell holding a value for presentation in a value list for a field of a form. When a user changes a value of a given cell in the spreadsheet, the value list reflects the change when presented by a field of the form. In many cases, a dynamic data source is implemented in a same device as an application generating a form. This type of implementation severely limits a number of dynamic data sources and forces a user to manage a given dynamic data source. In some cases, a dynamic data source is implemented in a different device as an application generating a form. For instance, a web form on a web page allows a user to enter data that is sent to a web service implemented on a server for processing. In some cases, a web form can present values in a field of the web form that are stored by the server. However, similar to static lists, a web form is limited to a static query of the web service that must be specified at design time. It is with respect to these and other considerations that the present improvements are needed.